package com.example.basicdemo.model.domain;

import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.isyscore.os.dev.api.IsyscoreObject;

import java.util.Date;
import java.util.List;

public class AclModuleLevelDomain implements IsyscoreObject {


    /**
     * 权限id
     */
    private Long id;

    /**
     * 权限标识
     */
    private String code;

    /**
     * 应用标识码
     */
    private String appCode;

    /**
     * 权限名称
     */
    private String name;

    /**
     * 父节点
     */
    private Long parentId;

    /**
     * 层级关系
     */
    private String level;

    /**
     * 排序规则
     */
    private Integer seq;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 路径
     */
    private String url;

    /**
     * 菜单类型
     */
    private Integer type;

    /**
     * 备注
     */
    private String remark;

    /**
     * 最近一次修改操作人
     */
    private String operator;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 最近一次修改时间
     */
    private Date gmtModified;

    /**
     * 最近一次修改IP地址
     */
    private String operateIp;

    /**
     * 是否有权限操作
     */
    private Boolean hasAcl;

    /**
     * 菜单层级
     */
    private Integer menuLevel;

    /**
     * 菜单类型
     */
    private String menuType;

    /**
     * 菜单Logo
     */
    private Integer menuLogo;

    /**
     * 菜单Logo的链接地址
     */
    private String menuLogoUrl;

    /**
     *
     */
    private Integer showSequence;

    /**
     *
     */
    private String number;

    /**
     *
     */
    private String label;

    /**
     *
     */
    private Integer pageBackground;

    /**
     *
     */
    private String pageBackgroundUrl;

    /**
     *
     */
    private String links;

    /**
     *
     */
    private String templateNumber;

    /**
     *
     */
    private String parentCode;

    /**
     *
     */
    private String exField;

    /**
     *
     */
    private List<AclModuleLevelDomain> aclModuleList = Lists.newArrayList();


    private List<AclDomain> aclList = Lists.newArrayList();

    @Override
    public String toString() {
        return JSONObject.toJSONString(this);
    }

    public Long getId() {
        return id;
    }

    public AclModuleLevelDomain setId(Long id) {
        this.id = id;
        return this;
    }

    public AclModuleLevelDomain setParentId(Long parentId) {
        this.parentId = parentId;
        return this;
    }

    public String getParentCode() {
        return parentCode;
    }

    public AclModuleLevelDomain setParentCode(String parentCode) {
        this.parentCode = parentCode;
        return this;
    }

    public String getExFiled() {
        return exField;
    }

    public AclModuleLevelDomain setExField(String exField) {
        this.exField = exField;
        return this;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getAppCode() {
        return appCode;
    }

    public void setAppCode(String appCode) {
        this.appCode = appCode;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getParentId() {
        return parentId;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    public String getOperateIp() {
        return operateIp;
    }

    public void setOperateIp(String operateIp) {
        this.operateIp = operateIp;
    }

    public Boolean getHasAcl() {
        return hasAcl;
    }

    public void setHasAcl(Boolean hasAcl) {
        this.hasAcl = hasAcl;
    }

    public Integer getMenuLevel() {
        return menuLevel;
    }

    public void setMenuLevel(Integer menuLevel) {
        this.menuLevel = menuLevel;
    }

    public String getMenuType() {
        return menuType;
    }

    public void setMenuType(String menuType) {
        this.menuType = menuType;
    }

    public Integer getMenuLogo() {
        return menuLogo;
    }

    public void setMenuLogo(Integer menuLogo) {
        this.menuLogo = menuLogo;
    }

    public String getMenuLogoUrl() {
        return menuLogoUrl;
    }

    public void setMenuLogoUrl(String menuLogoUrl) {
        this.menuLogoUrl = menuLogoUrl;
    }

    public Integer getShowSequence() {
        return showSequence;
    }

    public void setShowSequence(Integer showSequence) {
        this.showSequence = showSequence;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public Integer getPageBackground() {
        return pageBackground;
    }

    public void setPageBackground(Integer pageBackground) {
        this.pageBackground = pageBackground;
    }

    public String getPageBackgroundUrl() {
        return pageBackgroundUrl;
    }

    public void setPageBackgroundUrl(String pageBackgroundUrl) {
        this.pageBackgroundUrl = pageBackgroundUrl;
    }

    public String getLinks() {
        return links;
    }

    public void setLinks(String links) {
        this.links = links;
    }

    public String getTemplateNumber() {
        return templateNumber;
    }

    public void setTemplateNumber(String templateNumber) {
        this.templateNumber = templateNumber;
    }

    public List<AclModuleLevelDomain> getAclModuleList() {
        return aclModuleList;
    }

    public void setAclModuleList(List<AclModuleLevelDomain> aclModuleList) {
        this.aclModuleList = aclModuleList;
    }

    public List<AclDomain> getAclList() {
        return aclList;
    }

    public void setAclList(List<AclDomain> aclList) {
        this.aclList = aclList;
    }
}
